// pages/cart/index.js

Page({

  /**
   * 页面的初始数据
   */
  data: {
    cart: [],
    showAllBtn: true,
    totalmoney: 0, //总金额
    totalCount: 0
  },

  /**
   * 生命周期函数--监听页面显示
   */
  // tabBar页面不卸载，每次显示的时候获取本地存储最新的数据
  onShow: function () {
    //  获取本地存储中购物车的数据
    const cart = wx.getStorageSync('cart') || [];
    //更新页面数据
    this.setData({
      cart
    })
    //  调用计算价格的函数
    this.clacTotalMoney(cart);
  },
  // 改变商品数量
  changeCount(e) {
    const { index, number } = e.currentTarget.dataset;
    //获取购物车数据
    const { cart } = this.data;
    //当商品数量为1，number的值为-1,时，提示是否删除该商品
    if (number == -1 && cart[index].number == 1) {
      //调用wx模态框
      wx.showModal({
        // title: '是否删除商品',
        content: '是否删除商品',
        showCancel: true,
        cancelText: '取消',
        cancelColor: '#000000',
        confirmText: '确定',
        confirmColor: '#999',
        success: (result) => {
          if (result.confirm) {
            //点击确定按钮，删除该商品
            cart.splice(index, 1);
            //调用计算函数，同时更新本地存储数据
            this.clacTotalMoney(cart);
          } else {
            console.log("取消，不删除商品")
          }
        },

      });
    } else {
      cart[index].number += number;
      //调用计算函数,同时更新本地存储数据
      this.clacTotalMoney(cart);
    }
  },
  //勾选商品---选择按钮点击
  changeSelected(e) {
    const { index } = e.currentTarget.dataset;
    const { cart } = this.data;
    //当前状态取反
    cart[index].selected = !cart[index].selected;
    //调用计算函数，同时更新本地存储数据
    this.clacTotalMoney(cart);
  },
  //勾选全选按钮
  changeAllBtn() {
    let { showAllBtn, cart } = this.data;
    showAllBtn = !showAllBtn;
    //更新购物车视图数据
    cart.forEach(item => {
      item.selected = showAllBtn
    })
    // 更新视图数据
    this.setData({
      showAllBtn
    });
    //更新本地数据
    this.clacTotalMoney(cart);


  },
  // 封装计算总金额的函数
  clacTotalMoney(cart) {
    // 遍历cart数组
    let totalmoney = 0, //总金额
      totalCount = 0; //选中的总个数
    let showAllBtn = true;
    cart.forEach(element => {
      if (element.selected) {
        totalmoney += element.goods_price * element.number;
        totalCount++;
      } else {
        showAllBtn = false;
      }
    });
    // 如果购物车为空，全选按钮取消勾选
    if (cart.length == 0) showAllBtn = false;
    console.log("总价格", totalmoney);
    //将总价格和总数量进行更新
    this.setData({
      totalmoney,
      totalCount,
      showAllBtn,
      cart
    })
    //更新本地存储数据
    wx.setStorageSync('cart', cart);

  },
  //跳转到支付页面
  JumpPageOrder() {
    const { totalCount } = this.data;
    if (totalCount) {
      wx.navigateTo({
        url: '/pages/pay/index'
      });
    } else {
      console.log("没有选择商品");
    }

  }

})